﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Libreria.SICOM.Modelo;

namespace Libreria.SICOM.Negocio
{
    public class VariableNegocio
    {
        public List<Variable> consultarVariables(String CadenaDeConexion)
        {
            Variable nuevavariable = new Variable(CadenaDeConexion);
            return nuevavariable.consultar();
        }

        public void ActualizarVariable(Int32? Identificador, String Nombre, Int32? idunidad, String CadenaDeConexion)
        {
            Variable variable = new Variable(CadenaDeConexion);
            variable.Identificador = Identificador;
            variable.Nombre = Nombre;
            variable.Unidad = idunidad;
            variable.actualizar();
        }

        public void CrearVariable(Int32? Identificador, String Nombre,Int32? idunidad,String CadenaDeConexion)
        {
            Variable variable = new Variable(CadenaDeConexion);
            variable.Identificador =Identificador;
            variable.Nombre = Nombre;
            variable.Unidad = idunidad;
            variable.crear();
        }

        public void eliminarvariable(Int32? Identificador, String Nombre, Int32? idunidad, String CadenaDeConexion)
        {
            Variable  variable = new Variable(CadenaDeConexion);
            variable.Identificador = Identificador;
            variable.eliminar();
        }

        public Variable ConsultarPorIdentificador(Int32? Identificador, String CadenaDeConexion)
        {
            Variable nuevavariable = new Variable(CadenaDeConexion);
            Variable retornar = nuevavariable.consultarPorIdentificador(Identificador);
            return retornar;
        }
        
        public List<Variable> ConsultarVariablesPorMuestra(Int32? Identificador, String CadenaDeConexion)
        {
            TiposporVariable nuevotipoporvariable = new TiposporVariable(CadenaDeConexion);
            nuevotipoporvariable.Idtipodemuestra = Identificador;
            List<TiposporVariable> tiposporVariable = nuevotipoporvariable.consultar();

            List<Variable> variables = new List<Variable>();

            foreach (TiposporVariable item in tiposporVariable)
            {
                variables.Add(new Variable(CadenaDeConexion).consultarPorIdentificador(item.Iddevariable));
            }

            return variables;
        }

        public List<TipodeMuestra> ConsultarTiposdeMuestraPorVariable(Int32? Identificador, String CadenaDeConexion)
        {
            TiposporVariable nuevotipoporvariable = new TiposporVariable(CadenaDeConexion);
            nuevotipoporvariable.Iddevariable = Identificador;
            List<TiposporVariable> tiposporVariable = nuevotipoporvariable.consultar();

            List<TipodeMuestra> tiposdemuestras = new List<TipodeMuestra>();

            foreach (TiposporVariable item in tiposporVariable)
            {
                tiposdemuestras.Add(new TipodeMuestra(CadenaDeConexion).consultarPorIdentificador(item.Idtipodemuestra));
            }

            return tiposdemuestras;
        }

        public void CrearVariablePorMuestra(Int32? iddevariable, Int32? idtipodemuestra,  String CadenaDeConexion)
        {
            TiposporVariable nuevotipoporvariable = new TiposporVariable(CadenaDeConexion);
            nuevotipoporvariable.Iddevariable=iddevariable;
            nuevotipoporvariable.Idtipodemuestra = idtipodemuestra;
            nuevotipoporvariable.crear();
        }

        public void eliminarTiposdeMuestraPorVariable(Int32? Iddevariable, String CadenaDeConexion)
        {
            TiposporVariable nuevotipoporvariable = new TiposporVariable(CadenaDeConexion);
            nuevotipoporvariable.Iddevariable = Iddevariable;
            nuevotipoporvariable.eliminar();
        }
    }
}
